package gof.com.yew.singleton;

/**
 * 单例模式-创建型模式
 * @author yw
 *核心作用：保证一个类只有一个实例，并提供一个访问该实例的全局访问点。
 *优点：由于单例只生成一个实例，减少系统性能开销。
 *常用场景：
 *1.windows任务管理器 、回收站、文件系统
 *2.加载配置文件类、日志应用
 *3.计数器
 *4.数据库连接池技术
 *5.spring Bean
 */

//饿汉式
public class SingletonDemo01 {
	
	//类加载时，天然线程安全(无延迟加载)，无synchronized修饰，效率高
	private static SingletonDemo01 s1 = new SingletonDemo01();
	
	//构造器私有
	private SingletonDemo01(){};
	
	//方法无同步，调用效率高
	public static SingletonDemo01 getInstance() {
		return s1;
	};
	
	public void showMsg() {
		System.out.println("Singleton  implement");
	}
	
	public static void main(String[] args) {
		SingletonDemo01 s1 = SingletonDemo01.getInstance();
		s1.showMsg();
	}

}
